package com.site.blog.controller.aop;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.site.blog.dto.AjaxResultPage;
import com.site.blog.entity.log.WebLog;
import com.site.blog.enums.MethodType;
import com.site.blog.service.LogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.util.*;

/**
 * @author : Connor-G 康纳-郭
 * @date : 18:08 20.12.20
 * @Company : http://www.zzrgsoft.org
 * @Version : 1.0
 */

@Controller
@RequestMapping("/admin")
public class WebLogController {

    @Autowired
    private LogService logService;

    /**
     * 调换到 日志列表
     */
    @GetMapping("/operationLog")
    public String weblogPage() {

//        Idea测试环境这么写的，可以跑通
//        return "/adminLayui/weblog/weblog-list";

//        服务器环境部署，加/, thymleaf提示无法解析页面
        return "adminLayui/weblog/weblog-list";
    }


    /***
     *  分页查询 日志
     */
    @GetMapping("/listWeblog")
    @ResponseBody
    public AjaxResultPage getListPageLog(
            @RequestParam("page") Integer page,
            @RequestParam("limit") Integer limit,
            WebLog webLog) {

        Page pageInfo = logService.selectListPage(page, limit, webLog);

        AjaxResultPage<WebLog> result = new AjaxResultPage<>();
        List<WebLog> list = pageInfo.getRecords();
        long total = pageInfo.getTotal();
        result.setData(list);
        result.setCount(total);
        return result;
    }

    /***
     * 获取所有日志操作类型
     */
    @GetMapping("/methodType/list")
    @ResponseBody
    public Object methodList() {
        MethodType[] values = MethodType.values();

        List<Map<String, Object>> map = new ArrayList<>();
        for (MethodType value : values) {
            Map m = new HashMap();
            m.put("methodType", value.getMethodType());
            m.put("methodCode", value.getMethodCode());
            map.add(m);
        }
        return map;
    }
}
